home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
usr
/
sbin
/
laptop-detect
< prev
next >
Wrap
Text File
|
2008-11-10
|
3KB
|
94 lines
#!/bin/sh -e
usage () {
echo "Usage: $0 [-h|--help|-v|--verbose]"
echo ""
echo " -h | --help print this help"
echo " -v | --verbose be verbose (messages go to STDOUT)"
echo " -V | --version print version information"
echo ""
echo " Possible return values:"
echo " 0 most likely running on a laptop"
echo " 1 most likely NOT running on a laptop"
echo " 2 called with unknown option, -h, --help, -V or --version"
}
PRINTIT="/bin/true" # /bin/true accepts any option but never prints anything
# Check wether we were asked to be verbose
if [ "$1" != "" ]; then
case "$1" in
"-v"|"--verbose")
PRINTIT="echo"
;;
"-V"|"--version")
echo "Version: 0.13.7ubuntu1"
exit 2
;;
"-h"|"--help")
usage
exit 2
;;
*)
echo "UNKNOWN OPTION: $1"
usage
exit 2
;;
esac
fi
# Are we a mac?
if test -d /proc/pmu; then
batteries=$(grep Battery /proc/pmu/info | cut -f2 -d:)
if test "$batteries" -ne 0; then
$PRINTIT "We're a laptop (Mac: batteries found)" >&2;
exit 0
fi
exit 1
fi
if [ -r /dev/mem -a -x /usr/sbin/dmidecode ]; then
# dmidecode to grab the Chassis type
dmitype=$(dmidecode --string chassis-type)
if test "$dmitype" = "Notebook" || test "$dmitype" = "Portable"; then
$PRINTIT "We're a laptop (dmidecode returned $dmitype)" >&2
exit 0
fi
# turn back on for debugging
#echo "$dmitype"
fi
# check for any ACPI batteries
/sbin/modprobe battery 2> /dev/null || true
if [ -d /sys/class/power_supply ]; then
if grep -q Battery /sys/class/power_supply/*/type 2>/dev/null; then
$PRINTIT "We're a laptop (ACPI batteries found)" >&2
exit 0
fi
fi
# old interface:
if [ -d /proc/acpi/battery ]; then
results=`find /proc/acpi/battery -mindepth 1 -type d`
if [ ! -z "$results" ]; then
$PRINTIT "We're a laptop (ACPI batteries found)" >&2
exit 0
fi
fi
# check for APM batteries. This sucks, because we'll only get a valid response
# if the laptop has a battery fitted at the time
if [ -f /proc/apm ]; then
battery=`awk '{print $6}' </proc/apm`
if [ "$battery" != "0xff" ] && [ "$battery" != "0x80" ]; then
$PRINTIT "We're a laptop (APM batteries found)" >&2
exit 0
fi
fi
$PRINTIT "We're not on a laptop (no relevant hint found)" >&2
exit 1